package puzzle.projecteuler.p200;

public class Problem115C {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int n = 0;
		while (f(50, n)+1 < 1000000) {
			n ++;
		}
		System.out.println(n);
	}
	
	/**
	 * 计算至少有1个block的覆盖方法数
	 * @param n
	 * @return
	 */
	public static long f(int m, int n) {
		
		if (n < m) {
			return 0;
		} else if (n == m) {
			return 1;
		} else {
			long c = n-m+1;
			for (int i = m; i < n; i ++) {
				c += (i-m+1)*(f(m, n-i-1)+1);
			}
			return c;
		}
	}

}
